マウス操作でデータフレームを可視化できるPyGWalkerを試してみた

マウス操作でデータフレームを可視化できるPyGWalkerを試してみた

簡単にデータを可視化できるPyGWalkerを試してみたので共有します
Clock Icon2023.03.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。データアナリティクス事業本部のおざわです。

今回は、pandasのデータフレームをドラッグ&ドロップで簡単に可視化できるPyGWalkerを試してみましたので共有したいと思います。READMEによると名前は"Python binding of Graphic Walker"の略で"ピッグウォーカー"と発音するそうです。

PyGWalkerは非常に多くの環境で使えるようになっており、以下のリストはREADMEに記載されているテスト済み環境の一部を抜粋してきたものです。

  • Jupyter Notebook
  • Google Colab
  • Kaggle Code
  • JupyterLab
  • Databricks Notebook
  • VSCodeのJupyter拡張

Google Colabで試してみる

READMEにGoogle Colabのノートブックへのリンクが記載されています。 とりあえず試してみたいという方は、こちらをご利用いただくとご自身の環境を汚すことなく試せます。

利用方法も非常に簡単でwalk関数の引数に可視化したいデータフレームを指定するだけです。

import pygwalker as pyg
import pandas as pd

pyg.walk(df)

PyGWalkerが起動するとVisualizationとDataのタブが表示されます。

Visualizationタブ

Visualizationのタブでグラフが出てきます。基本的な使い方としては、左側のField Listからドラッグ&ドロップで右側に項目を配置するだけです。

Dataタブ

Dataのタブでは、データフレームの中身を確認できます。

可視化してみる

さっそくVisualizationのタブで可視化してみたいと思います(BI素人)。

サンプルデータには、ワシントンDCのレンタル自転車データセットが使われていました。項目としては日次のレンタル件数、気温、湿度、風速、季節、祝日かどうかなど、スクリーンショットの「Field List」にあるものです。

X-Axis, Y-Axis

試しにX-Axisにyear、Y-Axisにcountをドラッグ&ドロップしてみると即グラフが表示されました。

Aggregate

ツールバーにある「Aggregate」ボタンで集計の有効化と解除ができます。また、「Aggregate」が有効になっている状態でY-Axisに配置したcountをクリックすると下記スクリーンショットのように集計関数を選択することができます。

Mark Type

「Aggregate」横の「Mark Type」ボタンでグラフのビジュアルを変更することができます。 試しに「Bar」を選択してみます。

Color

続いてColorのところにTemperatureを追加してみます。 気温が高いほうがレンタルの利用者が増えるようです。まあ寒いときはあまり自転車に乗りたくないですよね。

Y-Axisに項目追加

今度は曜日を表すDay of the weekをY-AxisのCountの左側に追加します。こうすると曜日毎に分かれたレンタル件数のグラフを表示してくれます。

こうしてグラフ化されると傾向らしきものが見えてきます。平日(1-5)の朝7時から8時、午後5時から6時ごろに件数が増えています。ワシントンDCで平日の朝と夕方に利用者が多いということは、通勤目的のレンタルが多いのかもしれません。

Export

Exportボタンでグラフを画像として書き出すことができます。

おわりに

以上、簡単ではありますが、pandasのデータフレームを手軽に可視化できるPyGWalkerを試してみました。

ほとんどコードを書く必要がないので、ノートブック上ですばやく可視化してみたいときには便利なツールだと感じました。今回はGoogle Colabの環境で試した内容をご紹介していますが、ローカル環境のJupyter Labでも同じように動作させることができました。

サンプルのノートブックには、他にもいろいろな例が掲載されていますので、ぜひご覧になってみてください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.